package com.zmn.oms.business.interfaces.warningnews;

import com.zmn.oms.model.entity.work.OrderWork;

/**
 * 类描述：预警或超时消息业务处理
 *
 * @author yangshuangping
 * @since 2022/06/23 13:45
 */
public interface OmsOrderWarningNewsBService {
    /**
     * 描述：获取到超时消息后保存工单日志并发送APP push消息
     *
     * @param workId      工单ID
     * @param orderId     订单ID
     * @param timeoutType 超时类型
     *                    OrderTimeoutConsts.TIME_OUT_TYPE_CONTACT 联系超时  5
     *                    OrderTimeoutConsts.TIME_OUT_TYPE_TAKE 领单超时  4
     *                    OrderTimeoutConsts.TIME_OUT_TYPE_VISIT 上门超时  6
     */
    void timeOutNoticeSaveOrderLogAndSendAppPush(Long workId, Long orderId, Integer timeoutType);

    /**
     * 描述：获取到预警消息后保存工单日志并发送APP push消息
     *
     * @param workId      工单ID
     * @param orderId     订单ID
     * @param warningType 预警类型
     *                    OrderWarningTypeEnum.TAKE.getCode() 领单预警 4
     *                    OrderWarningTypeEnum.CONTACT.getCode() 联系预警 5
     *                    OrderWarningTypeEnum.VISIT.getCode() 上门预警 6
     */
    void warningNoticeSaveOrderLogAndSendAppPush(Long workId, Long orderId, Integer warningType);

    /**
     * 超时10 分钟订单未处理机器人通知
     *
     * @param oldOrderWork 工单信息
     * @param timeoutType  状态
     */
    void timeOutNoticeRobotNotice(OrderWork oldOrderWork, Integer timeoutType);
    /**
     * 超时10 分钟订单未处理机器人通知
     *
     * @param oldOrderWork 工单信息
     * @param timeoutType  状态
     */
    void warningNoticeRobotNotice(OrderWork oldOrderWork, Integer timeoutType);
}
